package com.rest.config.spirng;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

import java.lang.reflect.Method;

/**
 * @author 王战伟
 * @email mrwangzhanwei@163.com
 * @date 2021/3/17  9:45
 * ///////////////////////////////////////////////////////////////////
 * //                          _ooOoo_                               //
 * //                         o8888888o                              //
 * //                         88" . "88                              //
 * //                         (| ^_^ |)                              //
 * //                         O\  =  /O                              //
 * //                      ____/`---'\____                           //
 * //                    .'  \\|     |//  `.                         //
 * //                   /  \\|||  :  |||//  \                        //
 * //                  /  _||||| -:- |||||-  \                       //
 * //                  |   | \\\  -  /// |   |                       //
 * //                  | \_|  ''\---/''  |   |                       //
 * //                  \  .-\__  `-`  ___/-. /                       //
 * //                ___`. .'  /--.--\  `. . ___                     //
 * //              ."" '<  `.___\_<|>_/___.'  >'"".                  //
 * //            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
 * //            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
 * //      ========`-.____`-.___\_____/___.-`____.-'========         //
 * //                           `=---='                              //
 * //      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
 * //            佛祖保佑       永不宕机     永无BUG                   //
 * ////////////////////////////////////////////////////////////////////
 * 给项目配置前缀
 */
public class AutoPrefixUrlMapping extends RequestMappingHandlerMapping {

    @Value("${project.prefix}")
    private String prefix;

    @Override
    protected RequestMappingInfo getMappingForMethod(Method method, Class<?> handlerType){
        // 我们所需要的路由信息在 handlerType中
        RequestMappingInfo mappingForMethod = super.getMappingForMethod(method, handlerType);
        if (null != mappingForMethod){
            return RequestMappingInfo.paths(prefix).build().combine(mappingForMethod);
        }


        return null;
    }

}
